<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>意外的全局变量 </title>
</head>
<body>
<p>一个未声明变量的引用会在全局对象中创建一个新的变量。在浏览器的环境下，全局对象就是 window</p>
</body>
<script>
    // 意外的全局变量
    //全局变量什么时候需要自动释放内存空间则很难判断，因此在开发中，需要尽量避免使用全局变量
    function Foo(contxt){
        this.contxt  = contxt
    }
    function test(){

        //使用let或者var对变量进行声明，当函数执行完毕后变量会自动释放
        let a = new Foo('安琪拉')
        var b =  new Foo('嬴政')
        //不使用任何关键字对变量声明，此时该变量是全局变量，导致它不会被释放
        c = new Foo('王昭君')

    }
    test()
    //在浏览器后台 memory => Take heap snapshot 可以看到只剩下c变量
    // 为了防止这种错误的发生，可以在你的 JavaScript 文件开头添加 'use strict';
</script>
</html>